package com.speedchina.permission.config;

import com.speedchina.framework.inter.IdGenerator;
import com.speedchina.framework.utils.SnowFlake;
import org.springframework.context.annotation.Primary;
import org.springframework.stereotype.Component;

import java.io.Serializable;

/**
 * @Description 默认使用id生成方式
 *              想要自定义需要实现IdGenerator接口，并标注为主要的@Primary就可以使用自己的id生成
 * @Author xz
 * @Date 2021/4/12  10:35
 */
@Component
public class IdGeneratorSnowflake implements IdGenerator {

    @Override
    public Serializable nextId(Object entity) {
        //String bizKey = entity.getClass().getName(); 分布式场景扩展，根据bizKey调用分布式ID生成 id = ? 并返回
        //返回生成的id值即可。注意： 此处的返回值类型一定要和数据库的类型保存一致,类型不匹配会造成id设置失败
        return String.valueOf(SnowFlake.generateId());
    }
}